Kleene closure(克莱尼闭包)是形式语言与正则表达式中的概念:对某个语言(或符号集合)进行“任意次重复”的运算,包含重复 0 次、1 次、2 次……得到的所有串的集合。常用符号是 *****(也称 Kleene star / Kleene 星号)。
(在一些语境中也会提到 Kleene plus(+),表示“重复至少 1 次”。)
/ˈkliːni ˈkloʊʒər/
The Kleene closure of {a} is {ε, a, aa, aaa, …}.
{a} 的克莱尼闭包是 {ε, a, aa, aaa, …}。
In regular expressions, applying Kleene closure lets a pattern match any number of repetitions, including none.
在正则表达式中,使用克莱尼闭包可以让模式匹配任意次数的重复(包括不出现的情况)。
“Kleene”来自美国数学家与逻辑学家 Stephen Cole Kleene(斯蒂芬·科尔·克莱尼)的姓氏;“closure”意为“闭包/闭合”,在数学中常指对某种运算封闭后得到的最小集合。该术语用于描述语言在“重复(连接)”运算下扩展出的集合。